package 所有的题类.ZA.链表;

import com.kiwi.nixu.common.LNode;

import java.util.Arrays;
import java.util.List;

public class 两两交换链表中的节点 {
    public static void main(String[] args) {
        LNode lNode1 = arrayToLNode(Arrays.asList(1, 2, 3, 4, 5));
        LNode lNode = swapPairs(lNode1);
        System.out.println(lNode.data);
    }

    public static LNode swapPairs(LNode head) {
        if(head==null ){
            return null;
        }
        if(head.next==null){
            return head;
        }
        LNode to=head.next.next;
        LNode pre=head;
        LNode next=head.next;
        next.next=pre;
        pre.next=swapPairs(to);
        return next;
    }



    public static LNode arrayToLNode(List<Integer> list){
        LNode lNode = new LNode(list.get(0));
        LNode cur=lNode;
        for (int i = 1; i < list.size(); i++) {
            LNode tmp=new LNode(list.get(i));
            cur.next=tmp;
            cur=tmp;
        }
        return lNode;
    }
}
